import org.junit.jupiter.api.Test;

public class _21_合并两个有序链表 {


    @Test
    public void test(){

        //链表一
        ListNode node1 = new ListNode(1);
        ListNode node2 = new ListNode(2 );
        ListNode node3 = new ListNode(3);
        ListNode node4 = new ListNode(4);
        ListNode node5 = new ListNode(1);
        //链表二
        node1.next=node2;
        node2.next=node4;

        node5.next=node3;
        node3.next=node4;

//        while (node1!=null){
//            System.out.println(node1.val);
//            node1=node1.next;
//        }

        ListNode listNode = mergeTwoLists(node1, node5);
        while (listNode!=null){
            System.out.println(listNode.val);
            listNode=listNode.next;
        }


    }

    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        //创建头结点
        ListNode head =new ListNode(0);
        //将头结点指向第一个节点
        ListNode res= head;

        while (list1!=null&&list2!=null){
            if (list1.val< list2.val){
                //将res指向list1
                res.next=list1;
                //将res往前移
                res=res.next;
                //将list1也往前移
                list1=list1.next;
            }else {
                res.next=list2;
                res=res.next;
                list2=list2.next;
            }
        }
        if (list1==null){
            res.next=list2;
        }else {
            res.next=list1;
        }
        return head.next;
    }

}
